Convolutional Network Structure


Convolutional Network Structure

When designing a convolutional network, it is important to understand what is the purpose of each type of layer in order to create the network structure that best fits for an specific application.
Cuando se diseña una red convolucional, es importante entender cual es el propósito de cada tipo de capa a fin de crear la estructura de la red que mejor se acomode para la aplicación específica.

Problem 1
Complete the following table using the words: YES, NO or ALWAYS.
Complete la siguiente tabla usando las palabras: SI, NO o SIEMPRE.

NetChange

Problem 2
Search for two popular configurations for convolutional neural networks. For each of them, write
  1. Name of the topology
  2. A paragraph describing the main purpose of this network
  3. A paragraph describing the advantages of this configuration
  4. A drawing describing the size and type of each layer

Busque dos configuraciones comunes para las redes neuronales convolucionales. Para cada una de ellas, escriba
  1. Nombre de la topología
  2. Un párrafo describiendo el propósito principal de esta red
  3. Un párrafo describiendo las ventajas de esta configuración
  4. Un dibujo describiendo el tamaño y tipo de cada capa

Tip
It is important to note the Grocery database with only a very few images is presented here for illustrative purposes only. As the database has only 24 images, the performance of the network cannot be validated.
Es importante notar que la base de datos de Grocery con solamente unas pocas imágenes es presentada aquí por propósitos ilustrativos solamente. Como la base de datos tienes solamente 24 imágenes, el desempeño de la red no puede ser validado.

Problem 3
In this exercise, we will build the convolutional neural network with one pooling layer (see figure) to classify the fruits of the simple database of the Grocery project. Open the Grocery project that you created in Convolutional NN > Tensor . Use notepad to create a CSV file called target.csv with the correct class for each fruit.
En este ejercicio, nosotros construiremos una red neuronal convolucional con una capa pooling (vea la figura) para clasificar las frutas de la base de datos simple del proyecto Grocery. Abra el proyecto Grocery que usted creo en Convolutional NN > Tensor . Use el block de notas para crear un archivo CSV llamado target.csv con la clase correcta para cada fruta.

fruitPool

targetCsv

Step A
Add a new file called TrainPool.lab to use a convolutional neural network to classify the fruits of the Grocery project.
Agregue un archivo nuevo llamado TrainPool.lab para usar una red neuronal convolucional para clasificar las frutas del proyecto de Grocery.

Grocery\TrainPool.lab
//_______________________________________ 1. Load the input tensor
Tensor fruit;
fruit.LoadFolder();
//_______________________________________ 2. Load the target (class for each fruit)
Tensor target;
target.LoadCsv(4, 1, 1);
//_______________________________________ 3. Create the network
ConvNet netp;
netp.Create(256, 256, 3, 3);
netp.SetInRange(0.0, 255.0);
netp.SetOutRange(0.0, 1.0);
//_______________________________________ 4. Layer setup
netp.SetPoolLayer(0, 5, 10, 10); // visualField=10
netp.SetFullLayer(1, 1, 5); // logsig=1, neurons=5
netp.SetFullLayer(2, 1, 4); // logsig=1, neurons=4
//netp.SetFullLayer(2, 5, 4); // SoftMaxReject=5, neurons=4
//_______________________________________ 5. Train using genetic algoritm: logsig
netp.SetTrainSet(fruit, target, false);
netp.TrainGenetic(
     40, //Population Size
     20, //Number Generations
     1.8, //Over Population
     0.001, //Probability of Mutation
     0.8, //Probability of Crossover
     1.0e-5, //Goal (desired mse)
     true //Use Singular Value Decomposition
);
//_______________________________________ 6. Train using conjugate gradient
netp.TrainConjGrad(2500,1.0e-8);
netp.Save();

targetTensor

Step B
After training the network, add a new file called CheckPool.lab to check the training by computing the confusion matrix.
Después de entrenar la red, agregue un archivo nuevo llamado CheckPool.lab para verificar el entrenamiento calculando la matriz de confusión.

Grocery\CheckPool.lab
//_________________________________________ 1. Load the input tensor
Tensor fruit;
fruit.LoadFolder();
//_________________________________________ 2. Load the target (class for each fruit)
Tensor target;
target.LoadCsv(4, 1, 1);
//_________________________________________ 3. Load the network
ConvNet netp;
netp.Load();
//_________________________________________ 4. Run
Tensor output;
netp.Run(fruit, output);
//_________________________________________ 5. Compute the Confusion Matrix
Matrix trainConf;
output.ConfusionMatrix(target, 0.5, trainConf);
trainConf.Save();
//_________________________________________ Compute the Number of Errors
int numErrors = toint(trainConf.GetSum()) - toint(trainConf.GetDiagonalSum());

fruitPoolTrainConf

Problem 4
  1. What is the main purpose of the pooling layer in the network of the previous problem?
  2. What would happen, if the pooling layer is removed?

  1. Diga cual es el propósito principal de la capa de poleo en la red del problema previo.
  2. Que pasaría, si la capa de poleo es removida?

Problem 5
Repeat the Grocery project using a network with a convolutional layer and a pooling layer as shown below.
Repita el proyecto de Grocery usando una red con una capa convolucional y una capa pooling cómo se muestra debajo.

fruitPoolConv

Step A
Add a new file called TrainConv.lab to use a convolutional neural network with a convolutional layer to classify the fruits of the Grocery project.
Agregue un archivo nuevo llamado TrainConv.lab para usar una red neuronal convolucional con una capa convolucional para clasificar las frutas del proyecto de Grocery.

Grocery\TrainConv.lab
//_______________________________________ 1. Load the input tensor
Tensor fruit;
fruit.LoadFolder();
//_______________________________________ 2. Load the target (class for each fruit)
Tensor target;
target.LoadCsv(4, 1, 1);
//_______________________________________ 3. Create the network
ConvNet netc;
netc.Create(256, 256, 3, 4);
netc.SetInRange(0.0, 255.0);
netc.SetOutRange(0.0, 1.0);
//_______________________________________ 4. Layer setup
netc.SetPoolLayer(0, 5, 4, 4); // visualField=4
netc.SetConvLayer(1, 1, 3, 0, 1, 1); // logsig=1, visualField=3, numFilters=1
netc.SetFullLayer(2, 1, 5); // logsig=1, neurons=5
netc.SetFullLayer(3, 1, 4); // logsig=1, neurons=4
//netc.SetFullLayer(3, 5, 4); // SoftMaxReject=5, neurons=4
//_______________________________________ 5. Train using genetic algoritm: logsig
netc.SetTrainSet(fruit, target, false);
netc.TrainGenetic(
     80, //Population Size
     20, //Number Generations
     1.8, //Over Population
     0.001, //Probability of Mutation
     0.8, //Probability of Crossover
     1.0e-5, //Goal (desired mse)
     true //Use Singular Value Decomposition
);
//_______________________________________ 6. Train using conjugate gradient: SoftMax
netc.TrainConjGrad(1000,1.0e-8);
netc.Save();

Step B
After training the network, add a new file called CheckConv.lab to check the training by computing the confusion matrix.
Después de entrenar la red, agregue un archivo nuevo llamado CheckConv.lab para verificar el entrenamiento calculando la matriz de confusión.

Grocery\CheckConv.lab
//_________________________________________ 1. Load the input tensor
Tensor fruit;
fruit.LoadFolder();
//_________________________________________ 2. Load the target (class for each fruit)
Tensor target;
target.LoadCsv(4, 1, 1);
//_________________________________________ 3. Load the network
ConvNet netc;
netc.Load();
//_________________________________________ 4. Run
Tensor output;
netc.Run(fruit, output);
//_________________________________________ 5. Compute the Confusion Matrix
Matrix trainConf;
output.ConfusionMatrix(target, 0.5, trainConf);
trainConf.Save();
//_________________________________________ Compute the Number of Errors
int numErrors = toint(trainConf.GetSum()) - toint(trainConf.GetDiagonalSum());

fruitConvTrainConf

Problem 6
  1. What is the main purpose of the convolutional layer in the network of the previous problem?
  2. What would happen, if the convolutional layer is removed?

  1. Diga cual es el propósito principal de la capa convolucional en la red del problema previo.
  2. Que pasaría, si la capa convolucional es removida?

Problem 7
Download a research paper about one application of convolutional neural networks. Write a 300 words summary to describe the application, the structure of the network and the obtained results.
Descargue un artículo de investigación sobre una aplicación de las redes neuronales convolucionales. Escriba un resumen de 300 palabras para describir la aplicación, la estructura de la red y los resultados obtenidos.

© Copyright 2000-2021 Wintempla selo. All Rights Reserved. Jul 22 2021. Home